home *** CD-ROM | disk | FTP | other *** search
- -*-text-*-
-
-
- Changes to MC and MM.
-
- From Mutt 1.x to Mutt 2.x
-
- DONE:
- - Changed strings to dynamic strings, no length (prototyped 3/91).
- - Added MMgc_external_objects() call to mm.c
- - Changed to strings-as-objects with garbage collection, did the object
- manager stuff (5/91).
- - Added list, extract-element, extract-elements, insert-object
- length-of, remove-elements keywords 6/91.
- - Moved functionality of strlen into length-of, removed strlen.
- - Added convert-to. With this, (asc) is just (convert-to NUMBER
- (extract-element text n)). In CLisp, this is (coerce object
- result-type).
- - Moved functionality of substr into extract-elements and
- extract-element, removed substr (12/91).
- - Renamed int to small-int and INT to int. Forgetting that int was only
- 16 bits burned me once and thats enough. I should probably get rid of
- small-int and rename int to number but thats just a bit too drastic
- for this old C hack. (12/91).
- - Changed the format of the errors, warnings line MC2 spits out so it
- doesn't confuse automatic error parsing. 1/92.
-
- TODO
- - When parsing (length-of) if get a string constant, pack it, don't gen
- a do-op.
- - Add (type-of object). eg (type-of 123) => NUMBER. Don't know what
- happens when I get user defined objects. Same as CL.
- - Use BLOB less ie add more types: pointer to number (PNUMBER), etc.
- ? Trust but verify stack param types.
- (defun foo (int x) { (int a) (a x) }) right now I assume x is an int.
- It might be a better idea to type check x the first time it is used.
- In the token file, have ability to specify what type a extern
- returns.
- - Add 0C<character>. Used like 0X<hex number>. Or could use CLisp
- notation: #nnRdddd R is radix. so hex is #16r1bc or #x1bc. #b
- binary (#2r). 0cA == 0CA == #26A
- - Parse tabs in token file.
- - Add a new token file for pgm mod flags (like HIDDEN). These are
- passed to me. Used for interactive.
- Have a file of pgm modifiers (HIDDEN, etc) like the token file. Then
- stuff like ME have have their own.
- - Fix things so breaking or gotoing out of switches does not leave
- stuff on the stack.
- ? Make all externs use their own buffer for string. This is
- because (while TRUE (switch (get-matched) ... will max the stack when
- it doesn't need to.
- ? Add a token file magic number to the token file and verified by
- mmaux.c. Avoid versionits problems goona have when bindings[] change.
- - Change the code table to a dTable.
- - Have stufflabel() take a comment to add to the .lst file.
- - Structures
- - Objects, OOP support
- ? add more fields to external token file: arg types, return values so I
- can type check and save code. Could also remove need for mmaux to do
- so much type checking.
-